package org.standard.base.service;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.standard.base.model.BaseDept;
import org.standard.base.model.BaseUser;

public interface BaseDeptService {
	
	/**
	 * 添加部门
	 * @param department
	 * @return 成功返回'1',失败返回'0'
	 */
	public char createDepart(BaseDept department);
	
	/**
	 * 修改部门信息
	 * @param department
	 * @return
	 */
	public char updateDept(BaseDept department);
	
	/**
	 * 根据主键ID查找记录
	 * @param departId
	 * @return
	 */
	public BaseDept searchByDepartId(String departId);
	
	/**
	 * 查找出所有的部门
	 * @return
	 */
	public List<BaseDept> searchAllDepart();
	
	/**
	 * 根据父级id查找该部门下的所有子部门
	 * @param parentDeptId
	 * @return
	 */
	public List<BaseDept> searchChildDepart(String parentDeptId);
	
	/**
	 * 组织结构部门树
	 * @param parentId
	 * @return
	 */
	public String departTree(String parentId,HttpServletRequest request);
	
	/**
	 * 后台构造一个选部门的select
	 * @return
	 */
	public List<BaseDept> departSelect();
	
	/**
	 * 删除部门
	 * 如果部门下有用户或者是子部门提示不能删除
	 * @param department
	 * @return
	 */
	public char deleteDepart(BaseDept department);
	
	/**
	 * 添加系统日志
	 * @param admin
	 * @param ip
	 * @param message
	 * @param code
	 */
	public void createLog(BaseUser admin,String ip,String message,String code);
	
	public List<BaseDept> findAllByNode();
	

}
